package main

import (
	"github.com/lxn/walk"
)

type listBoxModel struct {
	walk.ListModelBase
	items []string
}

func (m *listBoxModel) ItemCount() int { // 列表项数
	return len(m.items)
}

func (m *listBoxModel) Value(index int) interface{} { // 列表项值
	return m.items[index]
}

func (m *listBoxModel) AddItem(item string) { // 添加列表项
	m.items = append(m.items, item)
	m.PublishItemsReset()
}

func (m *listBoxModel) Clear() { // 清空列表项
	m.items = nil
	m.PublishItemsReset()
}

func (m *listBoxModel) RemoveItem(index int) { // 删除列表项
	m.items = append(m.items[:index], m.items[index+1:]...)
	m.PublishItemsReset()
}

func (m *listBoxModel) SetItem(index int, item string) { // 修改列表项
	m.items[index] = item
	m.PublishItemsReset()
}

func (m *listBoxModel) GetItem(index int) string { // 获取列表项
	return m.items[index]
}

func (m *listBoxModel) SetValue(v []string) {
	m.items = v
	m.PublishItemsReset()
}

func (m *listBoxModel) GetValue() []string { // 获取列表项
	return m.items
}
